package com.domain;

/**
 * Clase que representa la abstraccion de un Avion. Cuanta con tres atributos,
 * cantidad de conbustible, cantidad de pasajeros y una matricula.
 */
public class Avion {
	static final int CAPACIDAD_TANQUE = 1000;
	private String matricula;
	private int cantidadCombustible;
	private int numPasajeros;
        
        /**
         * Constructor po defecto, inicializa los atributos de la clase.
         */
	public Avion(String matricula, int pasajeros, int fuel) {
		this.matricula = matricula;
		numPasajeros = pasajeros;
		cantidadCombustible = fuel;
	}
        
        /**
         * Constructor sobrecargado, genera un avion con valore aleatorio. Esta 
         * en deshuso, ya que esto lo hace ahora el aeropuerto.
         * @deprecated 
         * @see Aeropuerto.
         */
	public Avion() {
		this("Sin Matricula", cantidadCombustible(CAPACIDAD_TANQUE), 0);
	}
        
        /**
         * Metodo que genera un numero aleatorio, con un valor maximo determinado
         * por el usuario.
         * @deprecated 
         * @param int Valor maximo que puede tomar la varible.
         * @see Aeropuerto.
         */
	private static int cantidadCombustible(int limite) {
		int numero = (int) (Math.random() * (limite + 1));
		return numero;
	}

        /**
         * Metodo sobrecargado que imprime los atributos del Avion.
         * @return String Atributos del avion.
         */
	@Override
	public String toString() {
		return "Matricula: " + matricula + " Combustible: "
				+ cantidadCombustible + " Pasajeros: " + numPasajeros + " ";
	}
	
	/**
	 * Devuelve los datos planos del Avion para ser usados por el Log.
	 * @return
	 */
	public String toDataString(){
		return  matricula + "\t "
				+ cantidadCombustible + "\t " + numPasajeros;
	}

	/**
	 * @return the numMatriculo
	 */
	public String getNumMatricula() {
		return matricula;
	}

	/**
	 * @param numMatriculo
	 *            the numMatriculo to set
	 */
	public void setNumMatricula(String numMatriculo) {
		this.matricula = numMatriculo;
	}

	/**
	 * @return the cantidadFuel
	 */
	public int getCantidadFuel() {
		return cantidadCombustible;
	}

	/**
	 * @param cantidadFuel
	 *            the cantidadFuel to set
	 */
	public void setCantidadFuel(int cantidadFuel) {
		this.cantidadCombustible = cantidadFuel;
	}

	/**
	 * @return the numPasageros
	 */
	public int getNumPasajeros() {
		return numPasajeros;
	}

	/**
	 * @param numPasageros
	 *            the numPasageros to set
	 */
	public void setNumPasajeros(int numPasageros) {
		this.numPasajeros = numPasageros;
	}
}
